package rpc

import (
	"math/rand"

	"gitee.com/zhaoqinghuan/rpc/serialization"
)

// 声明接口 God、SonicJson、MySerializer 这三种方式都实现了序列化和反序列化，可以在接口中单独修改实例对象就能切换

type RpcData struct {
	A  int
	B  float32
	C  bool
	D  float64
	E  string
	f  int // 可导出字段才能被序列化，首字母小写的字段无法被导出
	Id string
}

var Serializer = serialization.MySerializer{}

var letterRunes = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")

// 生成随机字符串
func RandStringRunes(n int) string {
	b := make([]rune, n)
	for i := range b {
		b[i] = letterRunes[rand.Intn(len(letterRunes))]
	}
	return string(b)
}
